...you learn to code?
Was studying economics, uni had a C course, I took it, then learnt Python and went from there
first what do you want to do? make games? get a job?Are you into tech or engineering?
>>1524021 (OP)If you never programmed just choose a language and learn it. The choice doesn't matter since the concepts are the same in every single one. There will always be the same basic constructs - variables, functions, loops, if/else, bit manipulation - only with different syntax. If you start with C you will get confronted with pointers, which could be good if you learn about them from the beginning, but could be a bit overwhelming.As a complete starter don't focus so much on a language but the CONCEPTS.
>>1524021 (OP)Just read K&R
>>1524021 (OP)Since you're asking, you're not very good with computers.Do you know how to use a PC? Using files and folders, opening a command prompt, those kinds of things. This is a prerequisite for learning how to code. If you do know that:By far the easiest and most convenient thing to start with is the programming language "Python". Go to the website and install Python. Then open a command prompt and enter python (lowercase). Does Python start? Then you are ready to learn Python. Look up a tutorial and read the examples, try them out for yourself, modify them, see what works and what doesn't, and try to understand why.You will think of more questions, but don't. Don't overanalyze. It is important that you start right away.
>>1524021 (OP)If you are young and too lazy to learn it yourself then just go to college, they will teach you everything you neeed to know about main CS concepts including programming and with exams you will have an efficient way to assess your knowledge (not really true but it's definitely harder if you are self-taught and most people don't have the motivation and patience to pull it off).The syllabus of the courses will mention reference text books if you want to dig more in-depth in the subject.You don't really need to pay and enroll in a degree, some universities (depending where you live I guess) allow random people to attend lectures or you can watch lecture recordings on youtube, you also have a lot of tutorials online, one very popular is cs50 or generally anything on udemy and similar websites will be just fine to start. Other than programming you might want to have a look at operating systems and algorithms and data structures.Regardless of how you want to approach it what you want to avoid is what is commonly referred to as tutorial hell, once you finish your course/book (that ideally should be packed with practical exercises) you don't immediately start another one, instead you try to implement something by applying the new knowledge.Ideally you should already have an idea about the program you need to write so you can look up the relevant tech stack for that specific task, it can be anything really, for instance a tool to manage to your files, a mobile app for your gym to have a log of your workouts without retarded ads (unless you plan to sell it), or it can be anything else that you can implement to apply a new concept like concurrency.Refer to picrel if you don't know what you want to do. Also you can try websites like leetcode/codeforces/codewars.As you learn it might be useful to famialiarize yourself with tools like git and the terminal, more herehttps://missing.csail.mit.edu/
>>1524021 (OP)Check out "Think Python" by Allen B. Downey. It's a good introductory text to programming. It's author also made it available for free in digital form on his website. After you are done reading it you will have the basic knowledge of programming. Afterwards you will be able to specialize in whatever direction you will wish to. Want to dive into game dev? Learn C# and Unity or C++ and Unreal Engine. Keep in mind that the latter option has a much steeper learning curve. Web dev? Learn Javascript and SQL. Want to get into embedded development? Learn C. And so and and so forth. If you have any more questions feel free to ask.
I don't like the idea of learning Python as a first language because it's dynamically typing. If you learn it as a first language, make sure to understand the data types and specialties of Python.
>>1524576>I don't like the idea of learning Python as a first language because it's dynamically typing. If you learn it as a first language, make sure to understand the data types and specialties of Python.Wouldn't learning about data types in depth when learning a second language be good enough? Most people in college nowadays learn Python first and then learn intricacies of data types when they study C#/Java/C/C++ as their second language.
>>1524602I think it largely just depends on your goals. If you're looking to code in order to make simple scripts to automate things or just mess around with someone else's libraries, it'll work well enough. If you're actually trying to learn to code fundamentally though, I would recommend Java as a first language instead. Strongly typed languages are harder to use at first because there's more knowledge overhead, but ultimately it helps you conceptualize how computers work. Java is also somewhat more hand-holdy than something like C++, so I think it's a decent middle ground betweeen the easy-to-pick-up and the hard-to-master camps.Also, Python gives you a lot of wrong ideas because it's an interpretive language. Unlike compile time languages, Python will simply run when you tell it to. This is misleading to beginners, as you are much more likely to encounter runtime errors that can be hard to debug or reproduce. Compile time languages will often just not compile until the error is fixed, which is useful when you are a beginner and prone to making errors. Basically, Python is a very forgiving language, which is why it is so popular, but that's also why it doesn't work very well as a starter language for those that want to understand the fundamentals.
https://programming-motherfucker.com/become.html